package gooffice

import (
	_c "encoding/xml"
	_gd "errors"
	_b "fmt"
	_fe "log"
	_e "reflect"
	_gb "strings"
	_g "unicode"

	_d "gitee.com/gooffice/gooffice/algo"
)

// AddPreserveSpaceAttr adds an xml:space="preserve" attribute to a start
// element if it is required for the string s.
func AddPreserveSpaceAttr(se *_c.StartElement, s string) {
	if NeedsSpacePreserve(s) {
		se.Attr = append(se.Attr, _c.Attr{Name: _c.Name{Local: "\u0078m\u006c\u003a\u0073\u0070\u0061\u0063e"}, Value: "\u0070\u0072\u0065\u0073\u0065\u0072\u0076\u0065"})
	}
}

// AbsoluteImageFilename returns the full path to an image from the root of the
// zip container.
func AbsoluteImageFilename(dt DocType, index int, fileExtension string) string {
	_ga := AbsoluteFilename(dt, ImageType, index)
	return _ga[0:len(_ga)-3] + fileExtension
}

// Int8 returns a copy of v as a pointer.
func Int8(v int8) *int8 { _ed := v; return &_ed }

// Uint16 returns a copy of v as a pointer.
func Uint16(v uint16) *uint16 { _eba := v; return &_eba }

// RegisterConstructor registers a constructor function used for unmarshaling
// xsd:any elements.
func RegisterConstructor(ns, name string, fn interface{}) { _gf[ns+"\u002f"+name] = fn }

const (
	OfficeDocumentTypeStrict     = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072g\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006de\u006e\u0074"
	StylesTypeStrict             = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0073\u0074\u0079\u006c\u0065\u0073"
	ThemeTypeStrict              = "h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0074\u0068\u0065\u006d\u0065"
	SettingsTypeStrict           = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0073e\u0074\u0074i\u006eg\u0073"
	ImageTypeStrict              = "h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0069\u006d\u0061\u0067\u0065"
	CommentsTypeStrict           = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0063o\u006d\u006de\u006et\u0073"
	ThumbnailTypeStrict          = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072\u0067/\u006f\u006f\u0078m\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u006d\u0065\u0074\u0061\u0064\u0061\u0074\u0061\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061\u0069\u006c"
	DrawingTypeStrict            = "\u0068t\u0074\u0070\u003a\u002f\u002f\u0070\u0075rl\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006dl\u002f\u006ff\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068ip\u0073\u002f\u0064r\u0061\u0077\u0069\u006e\u0067"
	ChartTypeStrict              = "h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063\u0068\u0061\u0072\u0074"
	ExtendedPropertiesTypeStrict = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072\u0067/\u006f\u006f\u0078m\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0065\u0078\u0074\u0065\u006e\u0064\u0065\u0064\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073"
	CustomXMLTypeStrict          = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063\u0075s\u0074\u006f\u006d\u0058\u006d\u006c"
	WorksheetTypeStrict          = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0077\u006fr\u006b\u0073\u0068\u0065\u0065\u0074"
	SharedStringsTypeStrict      = "h\u0074\u0074p\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078m\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074\u0072\u0069\u006eg\u0073"
	SharedStingsTypeStrict       = SharedStringsTypeStrict
	TableTypeStrict              = "h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0074\u0061\u0062\u006c\u0065"
	HeaderTypeStrict             = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0068\u0065\u0061\u0064\u0065\u0072"
	FooterTypeStrict             = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0066\u006f\u006f\u0074\u0065\u0072"
	NumberingTypeStrict          = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006e\u0075m\u0062\u0065\u0072\u0069\u006e\u0067"
	FontTableTypeStrict          = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006fn\u0074\u0054\u0061\u0062\u006c\u0065"
	WebSettingsTypeStrict        = "\u0068\u0074\u0074\u0070\u003a\u002f/\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072g\u002f\u006f\u006f\u0078\u006dl\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006de\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0077\u0065\u0062\u0053\u0065\u0074\u0074i\u006e\u0067\u0073"
	FootNotesTypeStrict          = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006fo\u0074\u006e\u006f\u0074\u0065\u0073"
	EndNotesTypeStrict           = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0065n\u0064\u006eo\u0074e\u0073"
	SlideTypeStrict              = "h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065"
	VMLDrawingTypeStrict         = "\u0068\u0074t\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006fo\u0078\u006d\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065l\u0061\u0074i\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0076\u006dl\u0044\u0072\u0061\u0077\u0069\u006e\u0067"
	OfficeDocumentType           = "\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072g\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006fc\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074"
	StylesType                   = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u0074\u0079\u006c\u0065\u0073"
	ThemeType                    = "\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0074\u0068\u0065\u006d\u0065"
	ThemeContentType             = "\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e/\u0076\u006e\u0064.\u006f\u0070e\u006e\u0078\u006d\u006c\u0066\u006fr\u006dat\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0074\u0068\u0065\u006d\u0065\u002b\u0078\u006d\u006c"
	SettingsType                 = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u0065\u0074\u0074\u0069\u006eg\u0073"
	ImageType                    = "\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0069\u006d\u0061\u0067\u0065"
	CommentsType                 = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0063\u006f\u006d\u006d\u0065\u006et\u0073"
	CommentsContentType          = "a\u0070pl\u0069c\u0061t\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006fp\u0065\u006e\u0078\u006d\u006cf\u006f\u0072\u006da\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006fc\u0075\u006d\u0065nt.\u0073\u0070\u0072\u0065\u0061\u0064s\u0068\u0065\u0065\u0074\u006d\u006c\u002e\u0063\u006f\u006d\u006d\u0065n\u0074s\u002b\u0078\u006d\u006c"
	ThumbnailType                = "\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u0070\u0061\u0063\u006b\u0061g\u0065\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065t\u0061\u0064\u0061\u0074\u0061\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061i\u006c"
	DrawingType                  = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063h\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006f\u0072\u006d\u0061t\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006es\u0068\u0069\u0070\u0073\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067"
	DrawingContentType           = "\u0061\u0070\u0070\u006ci\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006ed\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066f\u0069\u0063\u0065\u0064\u006fc\u0075\u006d\u0065\u006e\u0074\u002e\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u002b\u0078\u006d\u006c"
	ChartType                    = "\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0063\u0068\u0061\u0072\u0074"
	ChartContentType             = "\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e/\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066f\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u006d\u006c\u002e\u0063\u0068a\u0072\u0074\u002b\u0078\u006d\u006c"
	HyperLinkType                = "ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0068\u0079\u0070\u0065\u0072\u006c\u0069\u006e\u006b"
	ExtendedPropertiesType       = "\u0068t\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069p\u0073\u002f\u0065x\u0074\u0065\u006e\u0064\u0065d\u002d\u0070\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073"
	CorePropertiesType           = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0070\u0061\u0063\u006ba\u0067\u0065\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065\u0074\u0061\u0064\u0061\u0074\u0061/\u0063\u006f\u0072\u0065\u002d\u0070\u0072\u006f\u0070e\u0072\u0074i\u0065\u0073"
	CustomPropertiesType         = "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069c\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063u\u0073\u0074\u006f\u006d\u002d\u0070\u0072\u006f\u0070e\u0072\u0074i\u0065\u0073"
	CustomXMLType                = "ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u0058\u006d\u006c"
	TableStylesType              = "\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0074\u0061\u0062\u006c\u0065\u0053\u0074\u0079\u006ce\u0073"
	ViewPropertiesType           = "ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070\u0073"
	WorksheetType                = "ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0077\u006f\u0072\u006b\u0073\u0068\u0065\u0065\u0074"
	WorksheetContentType         = "\u0061p\u0070l\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064.\u006f\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065\u0065\u0074\u006dl\u002e\u0077\u006f\u0072\u006b\u0073\u0068\u0065e\u0074\u002b\u0078\u006d\u006c"
	SharedStringsType            = "h\u0074\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002fo\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0032\u0030\u0030\u0036/\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074r\u0069\u006e\u0067\u0073"
	SharedStingsType             = SharedStringsType
	SharedStringsContentType     = "ap\u0070\u006c\u0069\u0063\u0061\u0074\u0069on\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073p\u0072\u0065\u0061\u0064\u0073\u0068e\u0065\u0074\u006d\u006c\u002e\u0073\u0068\u0061\u0072e\u0064S\u0074\u0072\u0069\u006e\u0067\u0073\u002b\u0078\u006d\u006c"
	SMLStyleSheetContentType     = "\u0061\u0070\u0070\u006c\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065n\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063e\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065\u0065\u0074\u006d\u006c\u002e\u0073t\u0079\u006c\u0065\u0073\u002bx\u006d\u006c"
	TableType                    = "\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0074\u0061\u0062\u006c\u0065"
	TableContentType             = "a\u0070\u0070l\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075m\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065e\u0074\u006d\u006c\u002e\u0074\u0061\u0062\u006c\u0065\u002b\u0078m\u006c"
	HeaderType                   = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0068\u0065\u0061\u0064\u0065\u0072"
	FooterType                   = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006f\u006f\u0074\u0065\u0072"
	NumberingType                = "ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u006e\u0075\u006d\u0062\u0065\u0072\u0069\u006e\u0067"
	FontTableType                = "ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0066\u006f\u006e\u0074\u0054\u0061\u0062\u006c\u0065"
	WebSettingsType              = "\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0077\u0065\u0062\u0053\u0065\u0074\u0074\u0069\u006eg\u0073"
	FootNotesType                = "ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0066\u006f\u006f\u0074\u006e\u006f\u0074\u0065\u0073"
	EndNotesType                 = "\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0065\u006e\u0064\u006e\u006f\u0074e\u0073"
	SlideType                    = "\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u006c\u0069\u0064\u0065"
	SlideContentType             = "\u0061\u0070\u0070\u006c\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065n\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063e\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002es\u006c\u0069\u0064\u0065\u002bx\u006d\u006c"
	SlideMasterType              = "\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u004d\u0061\u0073\u0074e\u0072"
	SlideMasterContentType       = "\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0073\u006c\u0069\u0064\u0065\u004da\u0073\u0074\u0065\u0072\u002b\u0078m\u006c"
	SlideLayoutType              = "\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u004c\u0061\u0079\u006fu\u0074"
	SlideLayoutContentType       = "\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0073\u006c\u0069\u0064\u0065\u004ca\u0079\u006f\u0075\u0074\u002b\u0078m\u006c"
	PresentationPropertiesType   = "ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070\u0073"
	HandoutMasterType            = "h\u0074\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002fo\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0032\u0030\u0030\u0036/\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0068\u0061\u006e\u0064\u006f\u0075\u0074\u004da\u0073\u0074\u0065\u0072"
	NotesMasterType              = "\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u006e\u006f\u0074\u0065\u0073\u004d\u0061\u0073\u0074e\u0072"
	VMLDrawingType               = "\u0068\u0074tp\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002fof\u0066\u0069c\u0065D\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u00300\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0076m\u006c\u0044\u0072\u0061\u0077\u0069\u006e\u0067"
	VMLDrawingContentType        = "\u0061\u0070\u0070\u006c\u0069\u0063a\u0074\u0069\u006fn\u002f\u0076\u006ed\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006fr\u006d\u0061\u0074\u0073\u002dof\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0076\u006d\u006c\u0044\u0072\u0061\u0077\u0069\u006e\u0067"
)

// Uint8 returns a copy of v as a pointer.
func Uint8(v uint8) *uint8 { _dc := v; return &_dc }

// Float32 returns a copy of v as a pointer.
func Float32(v float32) *float32 { _cce := v; return &_cce }

// CreateElement creates an element with the given namespace and name. It is
// used to unmarshal some xsd:any elements to the appropriate concrete type.
func CreateElement(start _c.StartElement) (Any, error) {
	_fec, _bg := _gf[start.Name.Space+"\u002f"+start.Name.Local]
	if !_bg {
		_dd := &XSDAny{}
		return _dd, nil
	}
	_cg := _e.ValueOf(_fec)
	_bgf := _cg.Call(nil)
	if len(_bgf) != 1 {
		return nil, _b.Errorf("\u0063\u006fn\u0073\u0074\u0072\u0075\u0063t\u006f\u0072\u0020\u0066\u0075n\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u006f\u006e\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0064", len(_bgf))
	}
	_fd, _bg := _bgf[0].Interface().(Any)
	if !_bg {
		return nil, _gd.New("\u0063o\u006e\u0073t\u0072\u0075\u0063\u0074o\u0072\u0020\u0066u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068ou\u006c\u0064\u0020r\u0065\u0074u\u0072\u006e\u0020\u0061\u006e\u0079 \u0027\u0041n\u0079\u0027")
	}
	return _fd, nil
}

// Int32 returns a copy of v as a pointer.
func Int32(v int32) *int32 { _eed := v; return &_eed }
func (_gde *nsSet) getPrefix(_bbd string) string {
	if _cf, _dg := _feb[_bbd]; _dg {
		if _, _cd := _gde._gfc[_cf]; !_cd {
			_gde._gfc[_cf] = _bbd
			_gde._bfb[_bbd] = _cf
			_gde._eac = append(_gde._eac, _cf)
		}
		return _cf
	}
	_bbd = _gb.TrimFunc(_bbd, func(_gbf rune) bool { return !_g.IsLetter(_gbf) })
	if _ae, _de := _gde._bfb[_bbd]; _de {
		return _ae
	}
	_gef := _gb.Split(_bbd, "\u002f")
	_gef = _gb.Split(_gef[len(_gef)-1], "\u003a")
	_da := _gef[len(_gef)-1]
	_cfd := 0
	_bcd := []byte{}
	for {
		if _cfd < len(_da) {
			_bcd = append(_bcd, _da[_cfd])
		} else {
			_bcd = append(_bcd, '_')
		}
		_cfd++
		if _, _dba := _gde._gfc[string(_bcd)]; !_dba {
			_gde._gfc[string(_bcd)] = _bbd
			_gde._bfb[_bbd] = string(_bcd)
			_gde._eac = append(_gde._eac, string(_bcd))
			return string(_bcd)
		}
	}
}

const MinGoVersion = _ff

// Uint32 returns a copy of v as a pointer.
func Uint32(v uint32) *uint32 { _af := v; return &_af }
func (_eg nsSet) applyToNode(_bbdc *any) {
	if _bbdc.XMLName.Space == "" {
		return
	}
	_ccc := _eg.getPrefix(_bbdc.XMLName.Space)
	_bbdc.XMLName.Space = ""
	_bbdc.XMLName.Local = _ccc + "\u003a" + _bbdc.XMLName.Local
	_bdd := _bbdc.Attrs
	_bbdc.Attrs = nil
	for _, _fdd := range _bdd {
		if _fdd.Name.Space == "\u0078\u006d\u006cn\u0073" {
			continue
		}
		if _fdd.Name.Space != "" {
			_df := _eg.getPrefix(_fdd.Name.Space)
			_fdd.Name.Space = ""
			_fdd.Name.Local = _df + "\u003a" + _fdd.Name.Local
		}
		_bbdc.Attrs = append(_bbdc.Attrs, _fdd)
	}
	for _, _gbg := range _bbdc.Nodes {
		_eg.applyToNode(_gbg)
	}
}

const (
	Unknown DocType = iota
	DocTypeSpreadsheet
	DocTypeDocument
	DocTypePresentation
)

// Float64 returns a copy of v as a pointer.
func Float64(v float64) *float64 { _gce := v; return &_gce }
func _ag(_gcb *any) {
	for _, _ea := range _gcb.Nodes {
		_ag(_ea)
	}
}

var _ba = map[string]bool{"\u0077\u0031\u0030": true, "\u0077\u0031\u0034": true, "\u0077\u0070\u0031\u0034": true, "\u0077\u0031\u0035": true, "\u0078\u0031\u0035a\u0063": true, "\u0077\u0031\u0036s\u0065": true, "\u0077\u0031\u0036\u0063\u0069\u0064": true, "\u0077\u0031\u0036": true, "\u0077\u0031\u0036\u0063\u0065\u0078": true}

const (
	ContentTypesFilename = "\u005b\u0043\u006f\u006ete\u006e\u0074\u005f\u0054\u0079\u0070\u0065\u0073\u005d\u002e\u0078\u006d\u006c"
	BaseRelsFilename     = "_\u0072\u0065\u006c\u0073\u002f\u002e\u0072\u0065\u006c\u0073"
)

func _ead(_bbb []*XSDAny) []*any {
	_cdd := []*any{}
	for _, _dfa := range _bbb {
		_ace := &any{}
		_ace.XMLName = _dfa.XMLName
		_dca := []_c.Attr{}
		for _, _bea := range _dfa.Attrs {
			if _bea.Name.Local != "\u0078\u006d\u006cn\u0073" {
				_dca = append(_dca, _bea)
			}
		}
		_ace.Attrs = _dca
		_ace.Data = _dfa.Data
		_ace.Nodes = _ead(_dfa.Nodes)
		_cdd = append(_cdd, _ace)
	}
	return _cdd
}

// XSDAny  is used to marshal/unmarshal xsd:any types in the OOXML schema.
type XSDAny struct {
	XMLName _c.Name
	Attrs   []_c.Attr
	Data    []byte
	Nodes   []*XSDAny
}

// MarshalXML implements the xml.Marshaler interface.
func (_ef *XSDAny) MarshalXML(e *_c.Encoder, start _c.StartElement) error {
	start.Name = _ef.XMLName
	start.Attr = _ef.Attrs
	_afd := any{}
	_afd.XMLName = _ef.XMLName
	_afd.Attrs = _ef.Attrs
	_afd.Data = _ef.Data
	_afd.Nodes = _ead(_ef.Nodes)
	_gdg := []string{}
	_cgb := false
	_efg := nsSet{_bfb: map[string]string{}, _gfc: map[string]string{}}
	_ef.collectNS(&_efg)
	_efg.applyToNode(&_afd)
	for _, _bfa := range _efg._eac {
		if _, _beab := _ba[_bfa]; _beab {
			_gdg = append(_gdg, _bfa)
		}
		_ffd := _efg._gfc[_bfa]
		_afd.Attrs = append(_afd.Attrs, _c.Attr{Name: _c.Name{Local: "\u0078\u006d\u006c\u006e\u0073\u003a" + _bfa}, Value: _ffd})
		if _bfa == "\u006d\u0063" {
			_cgb = true
		}
	}
	if _cgb && len(_gdg) > 0 {
		_afd.Attrs = append(_afd.Attrs, _c.Attr{Name: _c.Name{Local: "\u006d\u0063\u003aI\u0067\u006e\u006f\u0072\u0061\u0062\u006c\u0065"}, Value: _gb.Join(_gdg, "\u0020")})
	}
	return e.Encode(&_afd)
}

// Bool returns a copy of v as a pointer.
func Bool(v bool) *bool { _cb := v; return &_cb }

// DisableLogging sets the Log function to a no-op so that any log messages are
// silently discarded.
func DisableLogging() { Log = func(string, ...interface{}) {} }

var Log = _fe.Printf

// Int64 returns a copy of v as a pointer.
func Int64(v int64) *int64 { _afb := v; return &_afb }
func (_bgd *XSDAny) collectNS(_bcdc *nsSet) {
	if _bgd.XMLName.Space != "" {
		_bcdc.getPrefix(_bgd.XMLName.Space)
	}
	for _, _geb := range _bgd.Attrs {
		if _geb.Name.Space != "" && _geb.Name.Space != "\u0078\u006d\u006cn\u0073" {
			_bcdc.getPrefix(_geb.Name.Space)
		}
	}
	for _, _cbd := range _bgd.Nodes {
		_cbd.collectNS(_bcdc)
	}
}

const _ff = true

func _gg(_afa []*any) []*XSDAny {
	_ca := []*XSDAny{}
	for _, _dbc := range _afa {
		_bad := &XSDAny{}
		_bad.XMLName = _dbc.XMLName
		_bad.Attrs = _dbc.Attrs
		_bad.Data = _dbc.Data
		_bad.Nodes = _gg(_dbc.Nodes)
		_ca = append(_ca, _bad)
	}
	return _ca
}

// UnmarshalXML implements the xml.Unmarshaler interface.
func (_edg *XSDAny) UnmarshalXML(d *_c.Decoder, start _c.StartElement) error {
	_cgf := any{}
	if _ge := d.DecodeElement(&_cgf, &start); _ge != nil {
		return _ge
	}
	_ag(&_cgf)
	_edg.XMLName = _cgf.XMLName
	_edg.Attrs = _cgf.Attrs
	_edg.Data = _cgf.Data
	_edg.Nodes = _gg(_cgf.Nodes)
	return nil
}

// String returns a copy of v as a pointer.
func String(v string) *string { _bf := v; return &_bf }

// Uint64 returns a copy of v as a pointer.
func Uint64(v uint64) *uint64 { _aa := v; return &_aa }

var _feb = func() map[string]string {
	_bbg := map[string]string{}
	for _bdg, _fda := range _bc {
		_bbg[_fda] = _bdg
	}
	return _bbg
}()

// RelativeFilename returns a filename relative to the source file referenced
// from a relationships file. Index is used in some cases for files which there
// may be more than one of (e.g. worksheets/drawings/charts)
func RelativeFilename(dt DocType, relToTyp, typ string, index int) string {
	_bgfa := AbsoluteFilename(dt, typ, index)
	if relToTyp == "" {
		return _bgfa
	}
	_eb := AbsoluteFilename(dt, relToTyp, index)
	_bb := _gb.Split(_eb, "\u002f")
	_bd := _gb.Split(_bgfa, "\u002f")
	_ebf := 0
	for _ee := 0; _ee < len(_bb); _ee++ {
		if _bb[_ee] == _bd[_ee] {
			_ebf++
		}
		if _ee+1 == len(_bd) {
			break
		}
	}
	_bb = _bb[_ebf:]
	_bd = _bd[_ebf:]
	_ac := len(_bb) - 1
	if _ac > 0 {
		return _d.RepeatString("\u002e\u002e\u002f", _ac) + _gb.Join(_bd, "\u002f")
	}
	return _gb.Join(_bd, "\u002f")
}

// AbsoluteFilename returns the full path to a file from the root of the zip
// container. Index is used in some cases for files which there may be more than
// one of (e.g. worksheets/drawings/charts)
func AbsoluteFilename(dt DocType, typ string, index int) string {
	switch typ {
	case CorePropertiesType:
		return "\u0064\u006f\u0063\u0050\u0072\u006f\u0070\u0073\u002f\u0063\u006f\u0072e\u002e\u0078\u006d\u006c"
	case CustomPropertiesType:
		return "\u0064\u006f\u0063\u0050ro\u0070\u0073\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u002e\u0078\u006d\u006c"
	case ExtendedPropertiesType, ExtendedPropertiesTypeStrict:
		return "\u0064\u006fc\u0050\u0072\u006fp\u0073\u002f\u0061\u0070\u0070\u002e\u0078\u006d\u006c"
	case ThumbnailType, ThumbnailTypeStrict:
		return "\u0064\u006f\u0063Pr\u006f\u0070\u0073\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061\u0069\u006c\u002e\u006a\u0070\u0065\u0067"
	case CustomXMLType:
		return _b.Sprintf("c\u0075s\u0074\u006f\u006d\u0058\u006d\u006c\u002f\u0069t\u0065\u006d\u0025\u0064.x\u006d\u006c", index)
	case PresentationPropertiesType:
		return "\u0070\u0070\u0074\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c"
	case ViewPropertiesType:
		switch dt {
		case DocTypePresentation:
			return "\u0070\u0070\u0074\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c"
		case DocTypeSpreadsheet:
			return "\u0078\u006c/\u0076\u0069\u0065w\u0050\u0072\u006f\u0070\u0073\u002e\u0078\u006d\u006c"
		case DocTypeDocument:
			return "\u0077o\u0072d\u002f\u0076\u0069\u0065\u0077P\u0072\u006fp\u0073\u002e\u0078\u006d\u006c"
		}
	case TableStylesType:
		switch dt {
		case DocTypePresentation:
			return "\u0070\u0070\u0074\u002fta\u0062\u006c\u0065\u0053\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c"
		case DocTypeSpreadsheet:
			return "\u0078l\u002ft\u0061\u0062\u006c\u0065\u0053t\u0079\u006ce\u0073\u002e\u0078\u006d\u006c"
		case DocTypeDocument:
			return "w\u006fr\u0064\u002f\u0074\u0061\u0062\u006c\u0065\u0053t\u0079\u006c\u0065\u0073.x\u006d\u006c"
		}
	case HyperLinkType:
		return ""
	case OfficeDocumentType, OfficeDocumentTypeStrict:
		switch dt {
		case DocTypeSpreadsheet:
			return "\u0078l\u002fw\u006f\u0072\u006b\u0062\u006f\u006f\u006b\u002e\u0078\u006d\u006c"
		case DocTypeDocument:
			return "\u0077\u006f\u0072\u0064\u002f\u0064\u006f\u0063\u0075\u006d\u0065\u006et\u002e\u0078\u006d\u006c"
		case DocTypePresentation:
			return "p\u0070t\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074a\u0074\u0069\u006f\u006e.x\u006d\u006c"
		default:
			Log("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076", typ, dt)
		}
	case ThemeType, ThemeTypeStrict, ThemeContentType:
		switch dt {
		case DocTypeSpreadsheet:
			return _b.Sprintf("x\u006c/\u0074\u0068\u0065\u006d\u0065\u002f\u0074\u0068e\u006d\u0065\u0025\u0064.x\u006d\u006c", index)
		case DocTypeDocument:
			return _b.Sprintf("\u0077\u006f\u0072\u0064/t\u0068\u0065\u006d\u0065\u002f\u0074\u0068\u0065\u006d\u0065\u0025\u0064\u002e\u0078m\u006c", index)
		case DocTypePresentation:
			return _b.Sprintf("p\u0070\u0074\u002f\u0074he\u006de\u002f\u0074\u0068\u0065\u006de\u0025\u0064\u002e\u0078\u006d\u006c", index)
		default:
			Log("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076", typ, dt)
		}
	case StylesType, StylesTypeStrict:
		switch dt {
		case DocTypeSpreadsheet:
			return "\u0078\u006c\u002f\u0073\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c"
		case DocTypeDocument:
			return "\u0077o\u0072d\u002f\u0073\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c"
		case DocTypePresentation:
			return "\u0070\u0070\u0074\u002f\u0073\u0074\u0079\u006c\u0065s\u002e\u0078\u006d\u006c"
		default:
			Log("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076", typ, dt)
		}
	case ChartType, ChartTypeStrict, ChartContentType:
		switch dt {
		case DocTypeSpreadsheet:
			return _b.Sprintf("x\u006c\u002f\u0063\u0068ar\u0074s\u002f\u0063\u0068\u0061\u0072t\u0025\u0064\u002e\u0078\u006d\u006c", index)
		case DocTypeDocument:
			return _b.Sprintf("\u0077\u006f\u0072d/\u0063\u0068\u0061\u0072\u0074\u0073\u002f\u0063\u0068\u0061\u0072\u0074\u0025\u0064\u002e\u0078\u006d\u006c", index)
		case DocTypePresentation:
			return _b.Sprintf("\u0070\u0070\u0074\u002fch\u0061\u0072\u0074\u0073\u002f\u0063\u0068\u0061\u0072\u0074\u0025\u0064\u002e\u0078m\u006c", index)
		default:
			Log("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076", typ, dt)
		}
	case TableType, TableTypeStrict, TableContentType:
		return _b.Sprintf("x\u006c\u002f\u0074\u0061bl\u0065s\u002f\u0074\u0061\u0062\u006ce\u0025\u0064\u002e\u0078\u006d\u006c", index)
	case DrawingType, DrawingTypeStrict, DrawingContentType:
		switch dt {
		case DocTypeSpreadsheet:
			return _b.Sprintf("\u0078l\u002f\u0064\u0072\u0061w\u0069\u006e\u0067\u0073\u002fd\u0072a\u0077i\u006e\u0067\u0025\u0064\u002e\u0078\u006dl", index)
		default:
			Log("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076", typ, dt)
		}
	case CommentsType, CommentsTypeStrict, CommentsContentType:
		switch dt {
		case DocTypeSpreadsheet:
			return _b.Sprintf("\u0078\u006c\u002f\u0063\u006f\u006d\u006d\u0065\u006e\u0074\u0073\u0025d\u002e\u0078\u006d\u006c", index)
		default:
			Log("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076", typ, dt)
		}
	case VMLDrawingType, VMLDrawingTypeStrict, VMLDrawingContentType:
		switch dt {
		case DocTypeSpreadsheet:
			return _b.Sprintf("\u0078\u006c\u002f\u0064r\u0061\u0077\u0069\u006e\u0067\u0073\u002f\u0076\u006d\u006cD\u0072a\u0077\u0069\u006e\u0067\u0025\u0064\u002ev\u006d\u006c", index)
		default:
			Log("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076", typ, dt)
		}
	case ImageType, ImageTypeStrict:
		switch dt {
		case DocTypeDocument:
			return _b.Sprintf("\u0077\u006f\u0072\u0064/m\u0065\u0064\u0069\u0061\u002f\u0069\u006d\u0061\u0067\u0065\u0025\u0064\u002e\u0070n\u0067", index)
		case DocTypeSpreadsheet:
			return _b.Sprintf("x\u006c/\u006d\u0065\u0064\u0069\u0061\u002f\u0069\u006da\u0067\u0065\u0025\u0064.p\u006e\u0067", index)
		case DocTypePresentation:
			return _b.Sprintf("p\u0070\u0074\u002f\u006ded\u0069a\u002f\u0069\u006d\u0061\u0067e\u0025\u0064\u002e\u0070\u006e\u0067", index)
		default:
			Log("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076", typ, dt)
		}
	case WorksheetType, WorksheetTypeStrict, WorksheetContentType:
		return _b.Sprintf("\u0078l\u002f\u0077\u006f\u0072k\u0073\u0068\u0065\u0065\u0074s\u002fs\u0068e\u0065\u0074\u0025\u0064\u002e\u0078\u006dl", index)
	case SharedStringsType, SharedStringsTypeStrict, SharedStringsContentType:
		return "x\u006c/\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074r\u0069\u006e\u0067\u0073.x\u006d\u006c"
	case FontTableType, FontTableTypeStrict:
		return "\u0077o\u0072d\u002f\u0066\u006f\u006e\u0074T\u0061\u0062l\u0065\u002e\u0078\u006d\u006c"
	case EndNotesType, EndNotesTypeStrict:
		return "\u0077\u006f\u0072\u0064\u002f\u0065\u006e\u0064\u006e\u006f\u0074\u0065s\u002e\u0078\u006d\u006c"
	case FootNotesType, FootNotesTypeStrict:
		return "\u0077o\u0072d\u002f\u0066\u006f\u006f\u0074n\u006f\u0074e\u0073\u002e\u0078\u006d\u006c"
	case NumberingType, NumberingTypeStrict:
		return "\u0077o\u0072d\u002f\u006e\u0075\u006d\u0062e\u0072\u0069n\u0067\u002e\u0078\u006d\u006c"
	case WebSettingsType, WebSettingsTypeStrict:
		return "w\u006fr\u0064\u002f\u0077\u0065\u0062\u0053\u0065\u0074t\u0069\u006e\u0067\u0073.x\u006d\u006c"
	case SettingsType, SettingsTypeStrict:
		return "\u0077\u006f\u0072\u0064\u002f\u0073\u0065\u0074\u0074\u0069\u006e\u0067s\u002e\u0078\u006d\u006c"
	case HeaderType, HeaderTypeStrict:
		return _b.Sprintf("\u0077\u006f\u0072\u0064\u002f\u0068\u0065\u0061\u0064\u0065\u0072\u0025d\u002e\u0078\u006d\u006c", index)
	case FooterType, FooterTypeStrict:
		return _b.Sprintf("\u0077\u006f\u0072\u0064\u002f\u0066\u006f\u006f\u0074\u0065\u0072\u0025d\u002e\u0078\u006d\u006c", index)
	case SlideType, SlideTypeStrict:
		return _b.Sprintf("\u0070\u0070\u0074\u002fsl\u0069\u0064\u0065\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u0025\u0064\u002e\u0078m\u006c", index)
	case SlideLayoutType:
		return _b.Sprintf("\u0070\u0070\u0074/s\u006c\u0069\u0064\u0065\u004c\u0061\u0079\u006f\u0075t\u0073/\u0073l\u0069d\u0065\u004c\u0061\u0079\u006f\u0075\u0074\u0025\u0064\u002e\u0078\u006d\u006c", index)
	case SlideMasterType:
		return _b.Sprintf("\u0070\u0070\u0074/s\u006c\u0069\u0064\u0065\u004d\u0061\u0073\u0074\u0065r\u0073/\u0073l\u0069d\u0065\u004d\u0061\u0073\u0074\u0065\u0072\u0025\u0064\u002e\u0078\u006d\u006c", index)
	case HandoutMasterType:
		return _b.Sprintf("\u0070\u0070\u0074\u002f\u0068\u0061\u006e\u0064\u006f\u0075\u0074\u004d\u0061\u0073\u0074\u0065\u0072\u0073\u002f\u0068\u0061\u006e\u0064\u006fu\u0074\u004d\u0061\u0073\u0074e\u0072\u0025d\u002e\u0078\u006d\u006c", index)
	case NotesMasterType:
		return _b.Sprintf("\u0070\u0070\u0074/n\u006f\u0074\u0065\u0073\u004d\u0061\u0073\u0074\u0065r\u0073/\u006eo\u0074e\u0073\u004d\u0061\u0073\u0074\u0065\u0072\u0025\u0064\u002e\u0078\u006d\u006c", index)
	default:
		Log("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0073", typ)
	}
	return ""
}

type nsSet struct {
	_bfb map[string]string
	_gfc map[string]string
	_eac []string
}

// NeedsSpacePreserve returns true if the string has leading or trailing space.
func NeedsSpacePreserve(s string) bool {
	if len(s) == 0 {
		return false
	}
	switch s[0] {
	case '\t', '\n', '\v', '\f', '\r', ' ', 0x85, 0xA0:
		return true
	}
	switch s[len(s)-1] {
	case '\t', '\n', '\v', '\f', '\r', ' ', 0x85, 0xA0:
		return true
	}
	return false
}

var _bc = map[string]string{"\u0061": "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065m\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006cf\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067m\u006c\u002f\u0032\u0030\u0030\u0036\u002f\u006d\u0061\u0069\u006e", "\u0064\u0063": "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0072\u0067/\u0064c\u002f\u0065\u006c\u0065\u006d\u0065\u006e\u0074\u0073\u002f\u0031\u002e\u0031\u002f", "\u0064c\u0074\u0065\u0072\u006d\u0073": "\u0068t\u0074\u0070\u003a\u002f/\u0070\u0075\u0072\u006c\u002eo\u0072g\u002fd\u0063\u002f\u0074\u0065\u0072\u006d\u0073/", "\u006d\u0063": "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006d\u0061\u0072\u006b\u0075\u0070\u002d\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006ci\u0074\u0079\u002f\u0032\u00300\u0036", "\u006d\u006f": "\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u006d\u0061\u0063\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0032\u0030\u0030\u0038\u002f\u006d\u0061\u0069\u006e", "\u0077": "ht\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073.\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065s\u0073i\u006e\u0067\u006d\u006c\u002f\u0032\u0030\u00306\u002fm\u0061\u0069n", "\u0077\u0031\u0030": "\u0075\u0072n\u003a\u0073\u0063\u0068e\u006d\u0061s\u002d\u006d\u0069\u0063\u0072\u006f\u0073\u006ff\u0074\u002d\u0063\u006f\u006d\u003a\u006f\u0066\u0066\u0069\u0063\u0065:\u0077\u006f\u0072\u0064", "\u0077\u0031\u0034": "\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u006d\u006c", "\u0077\u0031\u0035": "\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0032\u002f\u0077\u006f\u0072\u0064\u006d\u006c", "\u0077\u006e\u0065": "\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0030\u0036\u002f\u0077\u006f\u0072\u0064\u006d\u006c", "\u0077\u0070": "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0064\u0072a\u0077\u0069\u006e\u0067\u006d\u006c\u002f\u0032\u0030\u0030\u0036\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0044\u0072\u0061\u0077i\u006e\u0067", "\u0077\u0070\u0031\u0034": "\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006d\u0069\u0063\u0072o\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006fr\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063e\u0073\u0073\u0069\u006e\u0067\u0044\u0072\u0061w\u0069\u006e\u0067", "\u0077\u0070\u0063": "\u0068\u0074t\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006ff\u0074\u002e\u0063\u006f\u006d\u002fo\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u00310\u002f\u0077o\u0072\u0064\u0070\u0072o\u0063\u0065\u0073\u0073\u0069n\u0067\u0043\u0061\u006e\u0076\u0061\u0073", "\u0077\u0070\u0067": "\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065m\u0061s\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069c\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0047\u0072\u006f\u0075\u0070", "\u0077\u0070\u0069": "\u0068t\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d/\u006f\u0066\u0066i\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072d\u0070\u0072oc\u0065\u0073\u0073i\u006e\u0067\u0049\u006e\u006b", "\u0077\u0070\u0073": "\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065m\u0061s\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069c\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0053\u0068\u0061\u0070\u0065", "\u0078\u0073\u0069": "\u0068\u0074\u0074\u0070\u003a/\u002f\u0077\u0077\u0077\u002e\u0077\u0033\u002e\u006f\u0072\u0067\u002f\u00320\u0030\u0031\u002f\u0058\u004d\u004c\u0053\u0063\u0068\u0065\u006d\u0061\u002d\u0069\u006e\u0073\u0074\u0061\u006e\u0063\u0065", "\u0078\u0031\u0035a\u0063": "ht\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0073\u0070\u0072\u0065\u0061\u0064\u0073h\u0065e\u0074\u006d\u006c\u002f\u0032\u0030\u0031\u0030/\u00311\u002f\u0061c", "\u0077\u0031\u0036s\u0065": "\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006fs\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006ff\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u00315\u002f\u0077\u006f\u0072\u0064\u006dl\u002f\u0073\u0079m\u0065\u0078", "\u0077\u0031\u0036\u0063\u0069\u0064": "\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0036\u002f\u0077\u006f\u0072\u0064\u006d\u006c\u002f\u0063\u0069\u0064", "\u0077\u0031\u0036": "\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0038\u002f\u0077\u006f\u0072\u0064\u006d\u006c", "\u0077\u0031\u0036\u0063\u0065\u0078": "\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0038\u002f\u0077\u006f\u0072\u0064\u006d\u006c\u002f\u0063\u0065\u0078", "\u0078\u006d\u006c": "\u0068\u0074tp\u003a\u002f\u002fw\u0077\u0077\u002e\u00773.o\u0072g/\u0058\u004d\u004c\u002f\u0031\u0039\u00398/\u006e\u0061\u006d\u0065\u0073\u0070\u0061c\u0065"}

type any struct {
	XMLName _c.Name
	Attrs   []_c.Attr `xml:",any,attr"`
	Nodes   []*any    `xml:",any"`
	Data    []byte    `xml:",chardata"`
}

// DocType represents one of the three document types supported (docx/xlsx/pptx)
type DocType byte

var _gf = map[string]interface{}{}

// RelativeImageFilename returns an image filename relative to the source file referenced
// from a relationships file. It is identical to RelativeFilename but is used particularly for images
// in order to handle different image formats.
func RelativeImageFilename(dt DocType, relToTyp, typ string, index int, fileExtension string) string {
	_db := RelativeFilename(dt, relToTyp, typ, index)
	return _db[0:len(_db)-3] + fileExtension
}

// Stringf formats according to a format specifier and returns a pointer to the
// resulting string.
func Stringf(f string, args ...interface{}) *string { _ccd := _b.Sprintf(f, args...); return &_ccd }

// Any is the interface used for marshaling/unmarshaling xsd:any
type Any interface {
	MarshalXML(_cc *_c.Encoder, _gc _c.StartElement) error
	UnmarshalXML(_a *_c.Decoder, _ab _c.StartElement) error
}
